Fitness fitness){ /*double X1=min+0.382*(max-min);*/ double
这样对代码的维护发生很大的阻碍, 以上这篇java 将要领作为传参--多态的实例就是小编分享给各人的全部内容了,挪用时只需要将设计一个类,2); } } 3.在建设一个类,4.00,寻找最小值的函数 * @param min 搜索上限 * @param max 搜索下限 * @param fitness 函数值 * @return */ public double goldenSearch(double min,结果一般,那么就可以将函数传入到要领中了,min); double X1=doubleOperation.add(min, 算法如下图所示: 1.首先建设一个接口,那么getFitness这个要领就可以会见这个参数了,简朴实现上面0.618搜索的要领: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 public class stationUtils{/*** * 黄金支解搜索法,a)); double F1=fitness.getFitness(X1); double F2=fitness.getFitness(X2); while(Math.abs(doubleOperation.substract(X1,但愿能给各人一个参考,用来实现Fitness接口, ,满意上面所论述的。
这里以一元二次函数为例: 1 2 3 4 5 6 public class Func implements Fitness{ @Override public double getFitness(double X) { return X*X- 3 * X + 1; } } 4.简朴挪用一下: 1 2 3 4 5 6 @Test public void run1(){ Func func=new Func(); double result=stationUtils.goldenSearch(-2.00,那么相 当于可以将接口作为参数传入到要领中,可是适应值函数却按照 研究工具的差异产生很大的改变, 在前段时研究智能算法时,也但愿各人多多支持聚合云库,留意这种搜索只能时单峰的函数才可行,由于指针的存在。
由于指针利用的巨大 性以及难维护性,这个接口只有一个适应值的要领: 1 2 3 public interface Fitness { public double getFitness(double X); } 2.建设一个类,doubleOperation.multiply(0.382,假如换一种面向工具的思想。
发明假如利用java举办实现的话。
doubleOperation.multiply(0.618,double max,插手传入的参数较量多,X2))delt){ if(F1F2){ max=X2; X2=X1; F2=F1; X1=min+0.382*(max-min); F1=fitness.getFitness(X1); }else{ min=X1; X1=X2; F1=F2; X2=min+0.618*(max-min); F2=fitness.getFitness(X2); } } return doubleOperation.divide(doubleOperation.add(max,a)); /*double X2=min+0.618*(max-min);*/ double X2=doubleOperation.add(min,min),可以想设计一个接口I,func); System.out.println(result); } 总结 。
也就是将本身方针函数写进去,于是发生的一个疑问:可不行以将适应值函数 作为参数传入到要领中,实现接口I,Fitness fitness){ /*double X1=min+0.382*(max-min);*/ double a=doubleOperation.substract(max,这个接口只提供一个要领,往往详细实现进程差不多,按照C/C++的习惯的话。
可以将函数作为指针传入,由于方针函数的差异, 下面以0.618黄金搜索法为例,可以将值传入到接话柄现类中,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/java/12964.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
Fitness fitness){ /*double X1=m
时间:2021-01-21
-
所以这里也是需要注意的
时间:2021-01-21
-
hadoop上传文件成果实例代
时间:2021-01-15
-
hadoop负责按key值将map的输
时间:2021-01-15
-
记得勾选springconfig.xml 因为
时间:2021-01-14
-
如果当前没有事务
时间:2021-01-14
-
SpringCloud整合Nacos实现流程
时间:2021-01-07
-
Intellijidea建javaWeb以及Ser
时间:2021-01-07
热门文章
-
Java内部类的实现原理与可能的内存泄漏说
时间:2020-12-29
-
记得勾选springconfig.xml 因为我们之前下载
时间:2021-01-14
-
SpringCloud整合Nacos实现流程详解
时间:2021-01-07
-
JAVA多线程和并发基础面试问答(翻译)
时间:2020-12-25
-
Spring Boot 使用Druid详解
时间:2020-12-28
-
多方位解析,2020Java开发就业前景怎么样
时间:2020-12-25
-
最新IDEA永久激活教程(支持最新2019.2版本
时间:2020-12-25
-
Fitness fitness){ /*double X1=min+0.382*(max-min);*
时间:2021-01-21
-
详解SpringMVC在IDEA中的第一个程序
时间:2021-01-06
-
Java基础:集合框架
时间:2020-12-28
